第 5 小节:如何找到适合的项目进行贡献

前言

说到“如何找到适合的项目进行贡献”,首先,我们先来聊一聊:什么是所谓的「适合的项目」?

  • 比如青春时代的你,偶然邂逅了一见钟情的 Ta;

  • 比如快意江湖的你,身边结识了意气相投的朋友;

  • 比如唱着单身情歌的你,在 Starbucks Coffee 等待着第一次见面的相亲对象

正所谓「最贵的未必是最好的,最适合的一定是最好的」,这句话放在寻找开源项目上也适用。

想要找到适合自己的开源项目,首先要了解自己。

想象一下,你要追求爱慕已久的女神,或者要结识志同道合的朋友,是不是需要了解女神的爱好,朋友的秉性?

哪怕一次不确定的相亲,也会打扮得衣冠楚楚。可能最后未必合适,那么喝完这杯 Starbucks,咱们就此别过,好聚好散。

OK,刚才我们用通俗易懂的类比向大家说明了什么叫「适合」,接下来我们言归正传。

目的

首先,要明确参加项目的初衷和目标。下面列举了一些例子,供大家参考。

  • 对某个项目仰慕已久,想要「掀起她的盖头来」(听说或见过,想要深入了解开源项目)
  • 工作中使用到某个项目,日久生情,愿意做彼此的欢喜冤家(工作中经常使用,但也会遇到棘手的问题,喜提 Issues)
  • 抱某个项目的大腿,成为一名牛x哄哄的 Contributor(想要提升自己内力,以及职业生涯的含金量)
  • 没有什么喜欢的项目,随便看看(了解前瞻性技术,保持技术新鲜度)

  • ……

下面就带着这些目标,开始「按图索骥」。

方法

寻找项目信息的渠道

  • 从开源网站寻找
    • 比如:Github、GitLab、Gitee、OSChina、CSDN、InfoQ 等
  • 参加技术沙龙
    • 比如:中国软件技术大会、Pivotal 技术峰会、各种 Meet Up 等
  • 加入技术讨论群
    • 比如:QQ 群、微信群、钉钉群等
  • 和身边人沟通
    • 比如:老师、同学、同事、朋友

匹配合适项目的维度

  • 从个人兴趣着手

    • 兴趣是最好的老师。为自己感兴趣的开源项目做贡献,会更加充满热情和动力。
  • 从个人技术栈着手

    • 比如:C、C++、C#、Java、Python、Golang 等。符合自己的技术栈,这个是最起码的要求,总不能选一个自己都不了解的语言项目进行贡献。
  • 从工作需求着手

    • 选择在工作和学习中使用比较多,比较熟悉的项目。这样你在动手修改它的代码之前就已经对它有了充分的了解,至少你是熟悉这个项目的各类使用方式和接口。
    • 各个模块耦合性比较低的项目,比如组件库、工具库,容易找到入手点。如前端所使用的 Element UI ,Antd UI 组件库。组件库的耦合性较低,向组件库增加或修改某一个组件也较为方便。同时工具库也是一个不错的选择,新增或修改某一个功能也较为容易。相反,模块之间耦合性比较大的项目可能就不太合适,比如各种大型的框架,这类开源项目耦合性较高。

参与项目贡献的方法

  • 成为 Contributor,参与项目代码维护与功能迭代;
  • Fork 项目,向项目提交 PR;
  • 提交和解答 Issues,积极参与项目讨论,保持社区活跃度;
  • 在工作使用中进行过扩展,并且经受过生产实践,就可以将代码贡献到对应的开源项目中;
  • 积极推广项目落地,包括公司内部、各技术群等。

参与项目贡献的注意事项

  • Issues
    • 按照项目要求的格式提交(格式要求、内容要求、语言要求等)。
  • Code
    • 按照项目要求的编码规范编写代码(代码缩进、代码换行等);
    • 项目一般会提供不同 IDE 对应的配置文件,达成代码格式统一。
  • Comment

    • 按照项目要求的格式编写注释(代码注释、Git 提交注释等)。
  • 沟通

    • 沟通是项目发展的基石,多和一个项目的朋友 say hello。

写在后面

本文带大家了解了什么是适合的项目?寻找项目信息的渠道有哪些?如何为自己匹配合适的项目?

并为大家提供了参与项目贡献的常见方法和注意事项,供大家参考。

希望大家通过阅读本文,可以找到适合自己的开源项目,为你的开源项目添砖加瓦!

更多优质建议

欢迎大家积极参与补充!

本部分内容贡献者

木兰君BaiYunITk哥随笔沈唁西狩taotierenWhitePaper